class Menu:
    def __init__(self, IOS, BOX):
        self.IOS = IOS
        self.box = BOX

        self.values = [
            "Добавить",
            "Показать",
            "Редактировать",
            "Сохранить",
            "Загрузить",
            "Очистить все",
            "Выход",
        ]
        self.actions = [
            self.box.create_obj,
            self.box.show_obj,
            self.box.edit_obj,
            self.box.dump_obj,
            self.box.load_obj,
            self.box.clear_obj,
        ]

    def run(self):
        try:
            while True:
                choice = self.IOS.choiser(self.values, self.actions)
                if choice == len(self.actions):
                    self.IOS.output("Досвидания")
                    return
                self.actions[choice]()

        except Exception as e:
            self.IOS.output("Операция невозможна: " + e.args[0])
            return
